import {InputNode} from '../core/InputNode.js';

class PropertyNode extends InputNode {

  constructor(object, property, type) {

    super(type);

    this.object = object;
    this.property = property;

  }

  get value() {

    return this.object[this.property];

  }

  set value(val) {

    this.object[this.property] = val;

  }

  toJSON(meta) {

    let data = this.getJSONNode(meta);

    if (!data) {

      data = this.createJSONNode(meta);

      data.value = this.value;
      data.property = this.property;

    }

    return data;

  }

}

PropertyNode.prototype.nodeType = 'Property';

export {PropertyNode};
